/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.sys.dao;

import com.thinkgem.jeesite.common.persistence.TreeDao;
import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.sys.entity.Office;

import java.util.List;

/**
 * 机构DAO接口
 * @author ThinkGem
 * @version 2014-05-16
 */
@MyBatisDao
public interface OfficeDao extends TreeDao<Office> {

    public List<String> getPostListByCompany(Office comp);

    public List<Office> getPostListByPID(String pId);

    public Office getVivoOffice(String id);

    public List<Office> findVivoList(Office o);

    public List<Office> findAllVivoList();

    public void insertVivo(Office o);

    public void updateVivo(Office o);

    public void updateVivoParentIds(Office o);

    public void deleteVivo(Office o);

    public void deleteAllVivo();



    public List<Office> getCompany(Office o);

    public List<Office> getVivoCompany(String name);

    public List<Office> getCompanyList();

    public List<Office> getDept(Office d);

    public List<Office> getPost(Office p);


    public List<Office> getOffice(Office o);


    public List<Office> getListByNameAndType(Office o);

    public List<Office> getOfficeByCode(Office o);

    public List<Office> getMyOwnAllList();


    public List<Office> getListByCodeLength(Office p);

    public List<Office> getYjzxByComp(Office comp);

    public List<Office> getDistinctPostListByCompany(Office comp);


    public List<Office> findAllSecondLevelByPName(String pName);
}
